[INFO] cloning repository https://github.com/boserba95/ruji
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/boserba95/ruji" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fboserba95%2Fruji", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fboserba95%2Fruji'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 773fb61ff8fc577fc6c3d759bc36a475c6d5c9a5
[INFO] fixing boserba95/ruji against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fboserba95%2Fruji" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/boserba95/ruji
[INFO] finished tweaking git repo https://github.com/boserba95/ruji
[INFO] tweaked toml for git repo https://github.com/boserba95/ruji written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/boserba95/ruji on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/boserba95/ruji already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692
[INFO] running `Command { std: "docker" "start" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating packages/rujira-rs/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating packages/rujira-rs-testing/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-account/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-bow/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-demo/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-fin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-ghost-vault/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-thorchain-swap/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-ghost-credit/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-merge/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-mint/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-pilot/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-revenue/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-staking/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-template/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking ff v0.13.0
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking allocator-api2 v0.2.18
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]     Checking dyn-clone v1.0.17
[INFO] [stderr]    Compiling unicode-xid v0.2.5
[INFO] [stderr]     Checking rmp v0.8.14
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]     Checking cosmwasm-core v2.2.2
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking bech32 v0.11.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking bnum v0.11.0
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking flex-error v0.4.4
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking cobs v0.2.3
[INFO] [stderr]     Checking anybuf v0.5.0
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]     Checking getrandom v0.3.2
[INFO] [stderr]     Checking time v0.3.37
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking tempfile v3.19.1
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking rusty-fork v0.3.0
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling ark-serialize-derive v0.4.2
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking der v0.7.9
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling ark-ff-macros v0.4.2
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling ark-ff-asm v0.4.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking thiserror v1.0.63
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling cosmwasm-derive v2.2.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling cosmwasm-schema-derive v2.2.2
[INFO] [stderr]     Checking subtle-encoding v0.5.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking ark-std v0.4.0
[INFO] [stderr]     Checking ark-serialize v0.4.2
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking proptest v1.6.0
[INFO] [stderr]     Checking ed25519-zebra v4.0.3
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]     Checking k256 v0.13.3
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]     Checking ark-ff v0.4.2
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking serde_json v1.0.128
[INFO] [stderr]     Checking serde-json-wasm v1.0.1
[INFO] [stderr]     Checking rmp-serde v1.3.0
[INFO] [stderr]     Checking bytes v1.7.1
[INFO] [stderr]     Checking serde_bytes v0.11.15
[INFO] [stderr]     Checking prost v0.13.5
[INFO] [stderr]     Checking postcard v1.1.1
[INFO] [stderr]     Checking tendermint-proto v0.40.1
[INFO] [stderr]     Checking cosmwasm-schema v2.2.2
[INFO] [stderr]     Checking ark-poly v0.4.2
[INFO] [stderr]     Checking ark-ec v0.4.2
[INFO] [stderr]     Checking ark-bls12-381 v0.4.0
[INFO] [stderr]     Checking cosmwasm-crypto v2.2.2
[INFO] [stderr]     Checking cosmwasm-std v2.2.2
[INFO] [stderr]     Checking cw-storage-plus v2.0.0
[INFO] [stderr]     Checking cw-utils v2.0.0
[INFO] [stderr]     Checking cw2 v2.0.0
[INFO] [stderr]     Checking cw-multi-test v2.4.0
[INFO] [stderr]     Checking cosmos-sdk-proto v0.26.1
[INFO] [stderr]     Checking rujira-rs v0.0.1 (/opt/rustwide/workdir/packages/rujira-rs)
[INFO] [stderr]    Migrating packages/rujira-rs/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed packages/rujira-rs/src/interfaces/bow/strategy.rs (3 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> packages/rujira-rs/src/merge_n_by_iter.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut best: Option<I::Item> = None;
[INFO] [stdout]    |             --------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `best` calls a custom destructor
[INFO] [stdout]    |             `best` will be dropped later as of Edition 2024
[INFO] [stdout] 40 |         let mut items: Vec<(&mut PutBack<Fuse<I>>, I::Item)> = vec![];
[INFO] [stdout]    |             ---------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `items` calls a custom destructor
[INFO] [stdout]    |             `items` will be dropped later as of Edition 2024
[INFO] [stdout] 41 |         for lane in &mut self.iters {
[INFO] [stdout] 42 |             match (best.clone(), lane.next()) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 48 |                 (Some(b), Some(next)) => {
[INFO] [stdout]    |                       -
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `b` calls a custom destructor
[INFO] [stdout]    |                       `b` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 54 |                                 i.0.put_back(i.1.clone());
[INFO] [stdout]    |                                 -------------------------
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 |                             lane.put_back(next);
[INFO] [stdout]    |                             -------------------
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 68 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Into<CosmosMsg<T>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         &self,
[INFO] [stdout]    |         ^
[INFO] [stdout] 26 |         cb_addr: &Addr,
[INFO] [stdout]    |                  ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |         data: impl Serialize,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |         funds: impl Into<Vec<Coin>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 24 ~     pub fn to_message<T, U: Serialize, V: Into<Vec<Coin>>>(
[INFO] [stdout] 25 |         &self,
[INFO] [stdout] 26 |         cb_addr: &Addr,
[INFO] [stdout] 27 ~         data: U,
[INFO] [stdout] 28 ~         funds: V,
[INFO] [stdout] 29 ~     ) -> StdResult<impl Into<CosmosMsg<T>> + use<T, U, V>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rujira-rs-testing v0.1.0 (/opt/rustwide/workdir/packages/rujira-rs-testing)
[INFO] [stderr]     Checking rujira-staking v1.2.0 (/opt/rustwide/workdir/contracts/rujira-staking)
[INFO] [stderr]     Checking rujira-template v0.0.0 (/opt/rustwide/workdir/contracts/rujira-template)
[INFO] [stderr]     Checking rujira-ghost-credit v1.0.0 (/opt/rustwide/workdir/contracts/rujira-ghost-credit)
[INFO] [stderr]     Checking rujira-pilot v0.0.0 (/opt/rustwide/workdir/contracts/rujira-pilot)
[INFO] [stderr]     Checking rujira-mint v1.0.1 (/opt/rustwide/workdir/contracts/rujira-mint)
[INFO] [stderr]     Checking rujira-revenue v1.1.0 (/opt/rustwide/workdir/contracts/rujira-revenue)
[INFO] [stderr]        Fixed packages/rujira-rs/src/interfaces/bow/xyk.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> packages/rujira-rs/src/merge_n_by_iter.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut best: Option<I::Item> = None;
[INFO] [stdout]    |             --------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `best` calls a custom destructor
[INFO] [stdout]    |             `best` will be dropped later as of Edition 2024
[INFO] [stdout] 40 |         let mut items: Vec<(&mut PutBack<Fuse<I>>, I::Item)> = vec![];
[INFO] [stdout]    |             ---------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `items` calls a custom destructor
[INFO] [stdout]    |             `items` will be dropped later as of Edition 2024
[INFO] [stdout] 41 |         for lane in &mut self.iters {
[INFO] [stdout] 42 |             match (best.clone(), lane.next()) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 48 |                 (Some(b), Some(next)) => {
[INFO] [stdout]    |                       -
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `b` calls a custom destructor
[INFO] [stdout]    |                       `b` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 54 |                                 i.0.put_back(i.1.clone());
[INFO] [stdout]    |                                 -------------------------
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 |                             lane.put_back(next);
[INFO] [stdout]    |                             -------------------
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 68 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating packages/rujira-rs-testing/src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: `impl Into<cosmwasm_std::CosmosMsg<T>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         &self,
[INFO] [stdout]    |         ^
[INFO] [stdout] 26 |         cb_addr: &Addr,
[INFO] [stdout]    |                  ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> packages/rujira-rs/src/callback.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |         data: impl Serialize,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |         funds: impl Into<Vec<Coin>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 24 ~     pub fn to_message<T, U: Serialize, V: Into<Vec<Coin>>>(
[INFO] [stdout] 25 |         &self,
[INFO] [stdout] 26 |         cb_addr: &Addr,
[INFO] [stdout] 27 ~         data: U,
[INFO] [stdout] 28 ~         funds: V,
[INFO] [stdout] 29 ~     ) -> StdResult<impl Into<CosmosMsg<T>> + use<T, U, V>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rujira-demo v0.0.0 (/opt/rustwide/workdir/contracts/rujira-demo)
[INFO] [stderr]    Migrating contracts/rujira-pilot/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rujira-ghost-vault v1.0.3 (/opt/rustwide/workdir/contracts/rujira-ghost-vault)
[INFO] [stderr]    Migrating contracts/rujira-ghost-credit/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rujira-bow v1.1.0 (/opt/rustwide/workdir/contracts/rujira-bow)
[INFO] [stderr]    Migrating contracts/rujira-staking/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rujira-account v0.0.0 (/opt/rustwide/workdir/contracts/rujira-account)
[INFO] [stderr]     Checking rujira-merge v1.0.4 (/opt/rustwide/workdir/contracts/rujira-merge)
[INFO] [stderr]    Migrating contracts/rujira-revenue/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-mint/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-template/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-demo/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-ghost-vault/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-bow/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rujira-thorchain-swap v0.0.7 (/opt/rustwide/workdir/contracts/rujira-thorchain-swap)
[INFO] [stderr]    Migrating contracts/rujira-account/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rujira-fin v1.1.0 (/opt/rustwide/workdir/contracts/rujira-fin)
[INFO] [stderr]    Migrating contracts/rujira-merge/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-revenue/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-mint/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-template/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-demo/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-thorchain-swap/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-fin/src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> contracts/rujira-thorchain-swap/src/contract.rs:158:15
[INFO] [stdout]     |
[INFO] [stdout] 158 |         match VAULTS.load(deps.storage, balance.denom.clone()) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 159 |             Ok(vault) => {
[INFO] [stdout] 160 |                 let debt = vault.debt(deps.querier, &env.contract.address)?;
[INFO] [stdout]     |                            ------------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Iterator<Item = EitherOrBoth<EitherOrBoth<pool::Pool>, std::vec::Vec<MarketMakerOffer>>> + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     ) -> impl Iterator<Item = EitherOrBoth<EitherOrBoth<Pool>, Vec<MarketMakerOffer>>> + 'a {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         &self,
[INFO] [stdout]    |         ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |         oracle: &'a impl Premiumable,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 18 ~     pub fn iter<T: Premiumable>(
[INFO] [stdout] 19 |         &self,
[INFO] [stdout] 20 |         storage: &'a dyn Storage,
[INFO] [stdout] 21 |         side: &'a Side,
[INFO] [stdout] 22 ~         oracle: &'a T,
[INFO] [stdout] 23 ~     ) -> impl Iterator<Item = EitherOrBoth<EitherOrBoth<Pool>, Vec<MarketMakerOffer>>> + 'a + use<'a, T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating contracts/rujira-bow/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-merge/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-ghost-vault/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> contracts/rujira-thorchain-swap/src/contract.rs:158:15
[INFO] [stdout]     |
[INFO] [stdout] 158 |         match VAULTS.load(deps.storage, balance.denom.clone()) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 159 |             Ok(vault) => {
[INFO] [stdout] 160 |                 let debt = vault.debt(deps.querier, &env.contract.address)?;
[INFO] [stdout]     |                            ------------------------------------------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating contracts/rujira-thorchain-swap/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-fin/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-ghost-credit/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stdout] warning: `impl Iterator<Item = EitherOrBoth<EitherOrBoth<pool::Pool>, std::vec::Vec<market_maker::MarketMakerOffer>>> + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     ) -> impl Iterator<Item = EitherOrBoth<EitherOrBoth<Pool>, Vec<MarketMakerOffer>>> + 'a {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         &self,
[INFO] [stdout]    |         ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> contracts/rujira-fin/src/swap_iter.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |         oracle: &'a impl Premiumable,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 18 ~     pub fn iter<T: Premiumable>(
[INFO] [stdout] 19 |         &self,
[INFO] [stdout] 20 |         storage: &'a dyn Storage,
[INFO] [stdout] 21 |         side: &'a Side,
[INFO] [stdout] 22 ~         oracle: &'a T,
[INFO] [stdout] 23 ~     ) -> impl Iterator<Item = EitherOrBoth<EitherOrBoth<Pool>, Vec<MarketMakerOffer>>> + 'a + use<'a, T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating contracts/rujira-staking/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating contracts/rujira-pilot/src/bin/schema.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 53s
[INFO] [stderr] crater-edition-check: rujira-rs v0.0.1 (/opt/rustwide/workdir/packages/rujira-rs) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-rs-testing v0.1.0 (/opt/rustwide/workdir/packages/rujira-rs-testing) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-account v0.0.0 (/opt/rustwide/workdir/contracts/rujira-account) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-bow v1.1.0 (/opt/rustwide/workdir/contracts/rujira-bow) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-demo v0.0.0 (/opt/rustwide/workdir/contracts/rujira-demo) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-fin v1.1.0 (/opt/rustwide/workdir/contracts/rujira-fin) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-ghost-vault v1.0.3 (/opt/rustwide/workdir/contracts/rujira-ghost-vault) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-thorchain-swap v0.0.7 (/opt/rustwide/workdir/contracts/rujira-thorchain-swap) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-ghost-credit v1.0.0 (/opt/rustwide/workdir/contracts/rujira-ghost-credit) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-merge v1.0.4 (/opt/rustwide/workdir/contracts/rujira-merge) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-mint v1.0.1 (/opt/rustwide/workdir/contracts/rujira-mint) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-pilot v0.0.0 (/opt/rustwide/workdir/contracts/rujira-pilot) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-revenue v1.1.0 (/opt/rustwide/workdir/contracts/rujira-revenue) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-staking v1.2.0 (/opt/rustwide/workdir/contracts/rujira-staking) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rujira-template v0.0.0 (/opt/rustwide/workdir/contracts/rujira-template) updating edition from 2021 to 2024
[INFO] [stderr]     Checking rujira-rs v0.0.1 (/opt/rustwide/workdir/packages/rujira-rs)
[INFO] [stdout] warning: trait `Coins` is never used
[INFO] [stdout]  --> packages/rujira-rs/src/coins.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Coins {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/bid_pool/sum_snapshot.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn key(&self) -> Vec<cw_storage_plus::Key> {
[INFO] [stdout]    |            ^^^^^         ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |            |
[INFO] [stdout]    |            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn key(&self) -> Vec<cw_storage_plus::Key<'_>> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/bid_pool/sum_snapshot.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn prefix(&self) -> Vec<Key> {
[INFO] [stdout]    |               ^^^^^         ^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn prefix(&self) -> Vec<Key<'_>> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/interfaces/fin/side.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn prefix(&self) -> Vec<Key> {
[INFO] [stdout]    |               ^^^^^         ^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn prefix(&self) -> Vec<Key<'_>> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rujira-rs-testing v0.1.0 (/opt/rustwide/workdir/packages/rujira-rs-testing)
[INFO] [stderr]     Checking rujira-revenue v1.1.0 (/opt/rustwide/workdir/contracts/rujira-revenue)
[INFO] [stderr]     Checking rujira-merge v1.0.4 (/opt/rustwide/workdir/contracts/rujira-merge)
[INFO] [stderr]     Checking rujira-mint v1.0.1 (/opt/rustwide/workdir/contracts/rujira-mint)
[INFO] [stderr]     Checking rujira-demo v0.0.0 (/opt/rustwide/workdir/contracts/rujira-demo)
[INFO] [stderr]     Checking rujira-account v0.0.0 (/opt/rustwide/workdir/contracts/rujira-account)
[INFO] [stderr]     Checking rujira-staking v1.2.0 (/opt/rustwide/workdir/contracts/rujira-staking)
[INFO] [stderr]     Checking rujira-ghost-vault v1.0.3 (/opt/rustwide/workdir/contracts/rujira-ghost-vault)
[INFO] [stderr]     Checking rujira-bow v1.1.0 (/opt/rustwide/workdir/contracts/rujira-bow)
[INFO] [stderr]     Checking rujira-ghost-credit v1.0.0 (/opt/rustwide/workdir/contracts/rujira-ghost-credit)
[INFO] [stderr]     Checking rujira-pilot v0.0.0 (/opt/rustwide/workdir/contracts/rujira-pilot)
[INFO] [stderr]     Checking rujira-template v0.0.0 (/opt/rustwide/workdir/contracts/rujira-template)
[INFO] [stdout] error[E0505]: cannot move out of `info.sender` because it is borrowed
[INFO] [stdout]    --> contracts/rujira-bow/src/contract.rs:108:46
[INFO] [stdout]     |
[INFO] [stdout]  43 |       info: MessageInfo,
[INFO] [stdout]     |       ---- binding `info` declared here
[INFO] [stdout] ...
[INFO] [stdout] 103 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 104 | |                         &info.sender,
[INFO] [stdout]     | |                         ------------ borrow of `info.sender` occurs here
[INFO] [stdout] 105 | |                         Empty {},
[INFO] [stdout] 106 | |                         coins(minted.u128(), t.denom()),
[INFO] [stdout] 107 | |                     )?)
[INFO] [stdout]     | |______________________- a temporary with access to the borrow is created here ...
[INFO] [stdout] 108 |                       .add_event(event_deposit(info.sender, coin(minted.u128(), t.denom())))),
[INFO] [stdout]     |                                                ^^^^^^^^^^^                                  - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<Result<Infallible, cosmwasm_std::StdError>, impl Into<CosmosMsg>>`
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                move out of `info.sender` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> contracts/rujira-bow/src/contract.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 104 | |                         &info.sender,
[INFO] [stdout] 105 | |                         Empty {},
[INFO] [stdout] 106 | |                         coins(minted.u128(), t.denom()),
[INFO] [stdout] 107 | |                     )?)
[INFO] [stdout]     | |_____________________^
[INFO] [stdout] help: if you can modify this crate, add a precise capturing bound to avoid overcapturing: `+ use</* Args */>`
[INFO] [stdout]    --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]     |
[INFO] [stdout]  29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the temporary is part of an expression at the end of a block;
[INFO] [stdout]             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
[INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
[INFO] [stdout]     |
[INFO] [stdout]  97 ~             let x = match callback {
[INFO] [stdout]  98 |                 None => Ok(Response::default()
[INFO] [stdout] ...
[INFO] [stdout] 108 |                     .add_event(event_deposit(info.sender, coin(minted.u128(), t.denom())))),
[INFO] [stdout] 109 ~             }; x
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 104 |                         &info.sender.clone(),
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `info.sender` because it is borrowed
[INFO] [stdout]    --> contracts/rujira-bow/src/contract.rs:132:47
[INFO] [stdout]     |
[INFO] [stdout]  43 |       info: MessageInfo,
[INFO] [stdout]     |       ---- binding `info` declared here
[INFO] [stdout] ...
[INFO] [stdout] 126 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 127 | |                         &info.sender,
[INFO] [stdout]     | |                         ------------ borrow of `info.sender` occurs here
[INFO] [stdout] 128 | |                         Empty {},
[INFO] [stdout] 129 | |                         withdrawn.clone().into_vec(),
[INFO] [stdout] 130 | |                     )?)
[INFO] [stdout]     | |______________________- a temporary with access to the borrow is created here ...
[INFO] [stdout] 131 |                       .add_message(t.burn_msg(balance))
[INFO] [stdout] 132 |                       .add_event(event_withdraw(info.sender, coin(balance.u128(), t.denom())))),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^                                   - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<Result<Infallible, cosmwasm_std::StdError>, impl Into<CosmosMsg>>`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 move out of `info.sender` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> contracts/rujira-bow/src/contract.rs:126:34
[INFO] [stdout]     |
[INFO] [stdout] 126 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 127 | |                         &info.sender,
[INFO] [stdout] 128 | |                         Empty {},
[INFO] [stdout] 129 | |                         withdrawn.clone().into_vec(),
[INFO] [stdout] 130 | |                     )?)
[INFO] [stdout]     | |_____________________^
[INFO] [stdout] help: if you can modify this crate, add a precise capturing bound to avoid overcapturing: `+ use</* Args */>`
[INFO] [stdout]    --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]     |
[INFO] [stdout]  29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the temporary is part of an expression at the end of a block;
[INFO] [stdout]             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
[INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
[INFO] [stdout]     |
[INFO] [stdout] 117 ~             let x = match callback {
[INFO] [stdout] 118 |                 None => Ok(Response::default()
[INFO] [stdout] ...
[INFO] [stdout] 132 |                     .add_event(event_withdraw(info.sender, coin(balance.u128(), t.denom())))),
[INFO] [stdout] 133 ~             }; x
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 127 |                         &info.sender.clone(),
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0505`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rujira-bow` (lib) due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0505]: cannot move out of `info.sender` because it is borrowed
[INFO] [stdout]    --> contracts/rujira-ghost-vault/src/contract.rs:109:46
[INFO] [stdout]     |
[INFO] [stdout]  68 |       info: MessageInfo,                // Info pengirim (alamat, dana yang dikirim)
[INFO] [stdout]     |       ---- binding `info` declared here
[INFO] [stdout] ...
[INFO] [stdout] 103 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 104 | |                         &info.sender,
[INFO] [stdout]     | |                         ------------ borrow of `info.sender` occurs here
[INFO] [stdout] 105 | |                         Empty {},
[INFO] [stdout] 106 | |                         coins(mint.u128(), rcpt.denom()),
[INFO] [stdout] 107 | |                     )?)
[INFO] [stdout]     | |______________________- a temporary with access to the borrow is created here ...
[INFO] [stdout] 108 |                       // Tambahkan event deposit
[INFO] [stdout] 109 |                       .add_event(event_deposit(info.sender, amount, mint)),
[INFO] [stdout]     |                                                ^^^^^^^^^^^               - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<Result<Infallible, cosmwasm_std::StdError>, impl Into<CosmosMsg>>`
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                move out of `info.sender` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> contracts/rujira-ghost-vault/src/contract.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 104 | |                         &info.sender,
[INFO] [stdout] 105 | |                         Empty {},
[INFO] [stdout] 106 | |                         coins(mint.u128(), rcpt.denom()),
[INFO] [stdout] 107 | |                     )?)
[INFO] [stdout]     | |_____________________^
[INFO] [stdout] help: if you can modify this crate, add a precise capturing bound to avoid overcapturing: `+ use</* Args */>`
[INFO] [stdout]    --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]     |
[INFO] [stdout]  29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the temporary is part of an expression at the end of a block;
[INFO] [stdout]             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
[INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
[INFO] [stdout]     |
[INFO] [stdout]  91 ~             let x = match callback {
[INFO] [stdout]  92 |                 // Jika tidak ada callback
[INFO] [stdout] ...
[INFO] [stdout] 109 |                     .add_event(event_deposit(info.sender, amount, mint)),
[INFO] [stdout] 110 ~             }; x
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 104 |                         &info.sender.clone(),
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `info.sender` because it is borrowed
[INFO] [stdout]    --> contracts/rujira-ghost-vault/src/contract.rs:145:47
[INFO] [stdout]     |
[INFO] [stdout]  68 |       info: MessageInfo,                // Info pengirim (alamat, dana yang dikirim)
[INFO] [stdout]     |       ---- binding `info` declared here
[INFO] [stdout] ...
[INFO] [stdout] 139 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 140 | |                         &info.sender,
[INFO] [stdout]     | |                         ------------ borrow of `info.sender` occurs here
[INFO] [stdout] 141 | |                         Empty {},
[INFO] [stdout] 142 | |                         coins(withdrawn.u128(), &config.denom),
[INFO] [stdout] 143 | |                     )?)
[INFO] [stdout]     | |______________________- a temporary with access to the borrow is created here ...
[INFO] [stdout] 144 |                       // Tambahkan event withdraw
[INFO] [stdout] 145 |                       .add_event(event_withdraw(info.sender, withdrawn, amount)),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^                    - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<Result<Infallible, cosmwasm_std::StdError>, impl Into<CosmosMsg>>`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 move out of `info.sender` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> contracts/rujira-ghost-vault/src/contract.rs:139:34
[INFO] [stdout]     |
[INFO] [stdout] 139 |                       .add_message(cb.to_message(
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 140 | |                         &info.sender,
[INFO] [stdout] 141 | |                         Empty {},
[INFO] [stdout] 142 | |                         coins(withdrawn.u128(), &config.denom),
[INFO] [stdout] 143 | |                     )?)
[INFO] [stdout]     | |_____________________^
[INFO] [stdout] help: if you can modify this crate, add a precise capturing bound to avoid overcapturing: `+ use</* Args */>`
[INFO] [stdout]    --> packages/rujira-rs/src/callback.rs:29:20
[INFO] [stdout]     |
[INFO] [stdout]  29 |     ) -> StdResult<impl Into<CosmosMsg<T>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the temporary is part of an expression at the end of a block;
[INFO] [stdout]             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
[INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
[INFO] [stdout]     |
[INFO] [stdout] 122 ~             let x = match callback {
[INFO] [stdout] 123 |                 // Jika tidak ada callback
[INFO] [stdout] ...
[INFO] [stdout] 145 |                     .add_event(event_withdraw(info.sender, withdrawn, amount)),
[INFO] [stdout] 146 ~             }; x
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 140 |                         &info.sender.clone(),
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0505`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rujira-ghost-vault` (lib) due to 2 previous errors
[INFO] [stdout] warning: trait `Coins` is never used
[INFO] [stdout]  --> packages/rujira-rs/src/coins.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Coins {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/bid_pool/sum_snapshot.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn key(&self) -> Vec<cw_storage_plus::Key> {
[INFO] [stdout]    |            ^^^^^         ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |            |
[INFO] [stdout]    |            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn key(&self) -> Vec<cw_storage_plus::Key<'_>> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/bid_pool/sum_snapshot.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn prefix(&self) -> Vec<Key> {
[INFO] [stdout]    |               ^^^^^         ^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn prefix(&self) -> Vec<Key<'_>> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> packages/rujira-rs/src/interfaces/fin/side.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn prefix(&self) -> Vec<Key> {
[INFO] [stdout]    |               ^^^^^         ^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn prefix(&self) -> Vec<Key<'_>> {
[INFO] [stdout]    |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692", kill_on_drop: false }`
[INFO] [stdout] 00c09159f8108010d8f2ded3b3e45c6f42f1cc66e3f0c501e6283105e3d48692
